const pageHelper = require('../../../helpers/page_helper');
const timeHelper = require('../../../helpers/time_helper');

// 尝试加载设置
let setting = {
	COMPANY: '通知公告系统',
	VER: '1.0.0'
};

try {
	// 尝试加载项目配置
	setting = require('../../../config/projects.js');
} catch (e) {
	console.error('加载项目配置失败，使用默认值', e);
	try {
		// 尝试加载项目配置的备用路径
		const projectConfig = require('../../../config/projects_config.js');
		if (projectConfig) {
			setting = {
				COMPANY: projectConfig.PROJECT_COMPANY || '通知公告系统',
				VER: projectConfig.PROJECT_VER || '1.0.0'
			};
		}
	} catch (e2) {
		console.error('加载备用项目配置也失败，使用默认值', e2);
	}
}

Component({
	options: {
		addGlobalClass: true
	},

	/**
	 * 组件的属性列表
	 */
	properties: {
		color: {
			type: String,
			value: ''
		},
	},

	/**
	 * 组件的初始数据
	 */
	data: {
		// 提供默认值避免undefined
		company: setting.COMPANY || '通知公告系统',
		ver: setting.VER || '1.0.0',
		time: ''
	},

	lifetimes: {
		created: function () {
			// 组件实例化，但节点树还未导入，因此这时不能用setData
		},
		attached: function () {
			// 在组件实例进入页面节点树时执行 
			// 节点树完成，可以用setData渲染节点，但无法操作节点 
		},
		ready: async function () {
			// 组件布局完成，这时可以获取节点信息，也可以操作节点 
			// 当前用户，用于评评论删除
			this._loadDetail();

			try {
				this.setData({ time: timeHelper.time('Y.M') });
			} catch (e) {
				console.error('设置时间失败', e);
				// 设置默认时间
				const now = new Date();
				this.setData({ 
					time: `${now.getFullYear()}.${String(now.getMonth() + 1).padStart(2, '0')}` 
				});
			}
		},
		move: function () {
			// 组件实例被移动到树的另一个位置
		},
		detached: function () {
			// 在组件实例被从页面节点树移除时执行
		},
	},

	/**
	 * 组件的方法列表
	 */
	methods: {
		_loadDetail: async function () {
			try {
				// 检查setting是否正确导入及属性是否存在
				const company = setting && setting.COMPANY ? setting.COMPANY : this.data.company;
				const ver = setting && setting.VER ? setting.VER : this.data.ver;
				
				this.setData({
					company: company,
					ver: ver
				});
				
				console.log('底部组件配置加载成功: company=' + company + ', ver=' + ver);
			} catch (e) {
				console.error('底部组件配置加载失败', e);
				// 发生错误时保留默认值
			}
		},
		url: function (e) {
			try {
				pageHelper.url(e, this);
			} catch (err) {
				console.error('页面跳转失败', err);
				// 手动实现基本的页面跳转功能
				if (e && e.currentTarget && e.currentTarget.dataset && e.currentTarget.dataset.url) {
					wx.navigateTo({
						url: e.currentTarget.dataset.url
					});
				}
			}
		}
	}
})